package editorsvg.css;

import editorsvg.editor.documento.ElementoSVG;
import java.util.List;

/**
 *
 * @author Jorge
 */
public class CondicionAdyacentes extends Condicion {
            
    private Condicion condicion1;
    private Condicion condicion2;

    public CondicionAdyacentes(Condicion condicion1, Condicion condicion2) {
        this.condicion1 = condicion1;
        this.condicion2 = condicion2;
    }
    
    @Override
    public boolean evaluar(ElementoSVG elemento, Regla regla) {
        if (condicion1 == null || condicion2 == null) {
            return false;
        }
        
        boolean cumple = false;
        
        List<ElementoSVG> hijos = elemento.getHijos();
        if (hijos == null) {
            return false;
        }
        for (int i = 1; i < hijos.size(); i++) {
            ElementoSVG hijo1 = hijos.get(i - 1);
            ElementoSVG hijo2 = hijos.get(i);
            if (!condicion1.evaluar(hijo1, null)) {
                continue;
            }
            
            cumple |= condicion2.evaluar(hijo2, regla);
        }
        return cumple;
    }

    @Override
    public int getEspecificidad() {
        return condicion1.getEspecificidad() + condicion2.getEspecificidad();
    }


}
